Video coding method

ABSTRACT

The invention relates to a video coding method based on a subband coding scheme applied to a sequence of two-dimensional frames. Said method comprises a subband decomposition step of a current frame (F 2 ), a motion prediction step, carried out with respect to a previous or reference frame (F 1 ), and a coding step. According to the invention, the motion prediction step is based on a redundant decomposition of the reference frame, according to the following procedure: in the approximation subband, the motion is estimated by means of a full search operation applied to each pixel of the current frame, and for the other subbands, the motion is estimated by means of a pel-recursive motion estimation algorithm using for the prediction the reference redundant subband reconstructed from the subsampled subbands. Said pel-recursive motion estimation algorithm itself comprises an initialization sub-step, a determination and updating sub-step, and a decision sub-step.

FIELD OF THE INVENTION

The present invention generally relates to the field of video compression and, more specifically, to a video coding method based on a subband coding scheme applied to a sequence of two-dimensional frames, said method comprising a subband decomposition step of a current frame (F2), a motion prediction step, carried out with respect to a previous or reference frame (F1), and a coding step.

BACKGROUND OF THE INVENTION

In the multimedia domain, new interactive applications such as Internet video streaming, video database browsing or multi-quality video services, are becoming widespread. This recent expansion of video services over heterogeneous networks (Internet, mobile nets, In Home Digital Networks) has raised new issues in terms of varying transport conditions (bandwidth, error rate . . . ) as well as varying consumer demands and terminal decoding capacibilities (CPU, display size, application . . . ), and has led to investigate new algorithms for video compression, in particular methods based on subband decompositions.

In the conventional video coding algorithms, and more particularly within the frame of the MPEG-4 standard, the motion estimation between successive frames of a processed video sequence is carried out by means of the so-called block-matching algorithm (BMA):in BMA, a motion vector is assigned to a block of picture elements (pixels) in a current frame (decomposed into blocks of fixed size) by searching a similar block within a defined area—or search window—of a reference frame, the best vector (that represents the shifting of the block) being found by evaluating candidates according to an error measure (the best corresponding block is the one that gives rise to a minimal error). The BMA unfortunately generates high frequency artifacts at the blocks edges (blocking effects) in the motion compensated frames. When the BMA is used in coding schemes based on a wavelet decomposition, these artefacts reduce the coding efficiency by inducing high coefficients in the wavelet decomposition of the compensated frames.

SUMMARY OF THE INVENTION

The object of the invention is to propose a video coding method incorporating another type of motion estimation and compensation and allowing to improve the coding efficiency.

To this end, the invention relates to a method such as defined in the introductory paragraph of the description and which is moreover characterized in that said motion prediction step is based on a redundant decomposition of the reference frame, according to the following procedure:

-   -   (1) in the approximation subband of said decomposition, the         motion is estimated by means of a full search operation         involving said reference frame and applied to each picture         element (pixel) of the current frame;     -   (2) for the other subbands, the motion is estimated by means of         a pixel (or pel) recursive motion estimation algorithm using for         the prediction the reference redundant subband reconstructed         from the subsampled subbands yielded by said subband         decomposition.

The proposed technical solution is based on the implementation of a pel-recursive motion estimation algorithm using wavelets. A motion estimation in the wavelet domain has to cope with the problem of translation invariance. The redundant decomposition of the reference frame is then used to predict the motion, allowing thus to take into account motion on the finest resolution grill. In the approximation subband, the motion is estimated by a full search algorithm applied to every pixel in the current frame. For the other subbands, a pel-recursive algorithm using for prediction the reference redundant subband is implemented. The initialization of this algorithm is made using a weighted value of the motion vectors of the spatial neighbours in the same subband and of the motion vector corresponding to the same position at the previous level of the decomposition. The algorithm allows to do a re-initialization at the positions failing to converge towards a good estimate. The scanning order in the subbands is also optimized in order to minimize the drift that can occur in a line-by-line scan.

More specifically, said pel-recursive motion estimation algorithm may comprise the following sub-steps:

-   -   (a) an initialization sub-step, the iterative algorithm being         initialized with the mean value d₀ (m) of the motion vector in a         causal neighbourhood S:         ${d_{0}(m)} = {\frac{1}{{Card}(S)}{\sum\limits_{j \in S}{d\left( {m - j} \right)}}}$         the following notations being used:     -   m=pixel for which the motion has to be estimated     -   d(m)=its motion vector;     -   (b) an updating sub-step, for updating di according to the         relation:         d _(i+1) =d _(i) +u _(i),         where u_(i), determined at each iteration i, is an update vector         given by:         $u_{i} = {{- \frac{E(m)}{{{\nabla A}}^{2} + \lambda}} \cdot {\nabla A}}$         where ∇A is the gradient of the image at the point m−d_(i),         E(m)=B(m)−A(m−d_(i)) is the prediction error at the current         iteration, and λ is a regularization parameter;     -   (c) a decision sub-step, for carrying a break test and thus         ending the procedure if d_(i) is close enough to d;         a typical neighbourhood of four pixels being preferably used.

In a particular implementation of the invention, the break test may be based on the estimation of the following ratio: $R = \frac{{u_{i}}^{2}}{{d_{i}}^{2}}$ said ratio having to be greater than a given threshold ε.

Said break test may also include an additional condition put on a maximum number of iterations.

It may also be indicated that, according to an advantageous embodiment of the invention, the determination of said update vector u_(i) is based on a computation step including the following minimizing operation: knowing that B(m)=A(m−d_(i))−δd^(T).∇A where δd^(T).∇A is the inner product of ∇A and vector δd=d−d_(i), to minimize the square error J: J=(B(m)−A(m−d _(i))+δd ^(T) .∇A)² +λ||δd|| ² with respect to δd, the term λ||δd||² being a regularization term provided in view of a trade-off between the smoothness of the resulting motion vector field, for large values of λ, and the accuracy of the motion vectors, for small values of λ, the minimum being obtained for ∂J/∂δd=0 and leading to the update vector: ${\delta\quad d} = {u_{i} = {{- \frac{E(m)}{{{\nabla A}}^{2} + \lambda}} \cdot {\nabla A}}}$

In another embodiment of the invention, the motion estimation algorithm may also comprise the following sub-steps:

-   -   (a) an initialization sub-step, the iterative algorithm being         initialized with the mean value d_(j,o) (m) of the motion vector         in a causal neighbourhood S:         ${d_{j,o}(m)} = {\frac{1}{{Card}(S)}{\sum\limits_{j \in S}{d_{j}\left( {m - k} \right)}}}$         the following notations being used:     -   kεs (1 to 4)     -   m=pixel for which the motion has to be estimated     -   d_(j,o)(m)=its motion vector;     -   (b) an updating sub-step, for updating d_(j,i+1) according to         the         relation:         d _(i,i+1) =d _(j,i) +u _(j,i),         where u_(j,i) determined at each iteration i is an update vector         given by: $\begin{matrix}         {u_{j,i} = {\left( {{\sum\limits_{{s = 0},1}^{3}\left( {{\nabla A_{j,s}}{\nabla A_{j,s}^{T}}} \right)} + {\lambda\quad I}} \right)^{- 1}\quad\left( {- {\sum\limits_{{s = 0},1}^{3}{{E_{j,s}(m)}{\nabla A_{j,s}}}}} \right)}} \\         {{where}\text{:}} \\         {{\nabla A_{j,s}} = \begin{pmatrix}         \frac{\partial{A_{j,s}\left( {m - d_{j,i}} \right)}}{\partial m} \\         \frac{\partial{A_{j,s}\left( {m - d_{j,i}} \right)}}{\partial n}         \end{pmatrix}}         \end{matrix}$         is the gradient of the image at point m−d_(j,i) and         E _(j,s)(m)=B _(j,s)(m)−A _(j,s)(m−d _(j,i))     -   (c) a decision sub-step, for carrying a break test and thus         ending the procedure if d_(j,i) is close enough to d_(j).

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will now be described, by way of example, with reference to the accompanying drawings in which:

FIG. 1 illustrates a subband decomposition of a video sequence, with motion compensation;

FIGS. 2 and 3 respectively show a dyadic subband decomposition and a bank filter allowing to obtain said decomposition;

FIGS. 4 and 5 illustrate how the subsampling operation of such a dyadic subband decomposition does not preserve the translation invariance;

FIGS. 6 and 7 illustrate identities between representations, showing that redundant decompositions exist for each level of analysis;

FIGS. 8 and 9 depict the so-called lifting scheme, respectively in the case of a signal decomposition and in the case of a signal reconstruction;

FIG. 10 to 12 show three levels of the classical wavelet decomposition obtained by applying the identities of FIGS. 6 and 7 to each bank filter of FIG. 3;

FIG. 13 illustrates the choice of the samples (0 for even, 1 for odd) for a decomposition on three levels;

FIG. 14 shows the 64 possible subsampling choices corresponding to the 64 possible decomposition bases;

FIG. 15 shows how interleaving subsampled subbands yields the redundant subband;

FIG. 16 illustrates the redundant decomposition of a single frame, everyone of the ten redundant subbands having the same size as the original frame;

FIG. 17 shows the classical, linear scanning order, and FIG. 18 a causal scanning order allowing to obtain an improved causality in the initialization of the described pel-recursive algorithm;

FIG. 19 shows a full search window in the redundant plane for the pixel (m,n).

DETAILED DESCRIPTION OF THE INVENTION

In order to obtain flexible video coding systems, able to cope with different requirements and capabilities, the scalability is the expected functionality. Progressive encoding techniques based on subband decompositions may be an answer, since they allow a fully progressive transmission. Particularly, wavelets have a high efficiency in progressively encoding images in view of a scalable representation. They offer a natural multiscale representation for still images, that can be extended to video data by means of a 3D (or 2D+t) wavelet analysis including the temporal dimension within the decomposition (3D =three-dimensional; 2D =two-dimensional; t=time). The introduction of a motion compensation step in the 3D subband decomposition scheme leads to a spatio-temporal multiresolution (hierarchical) representation of the video signal, as illustrated in FIG. 1 showing a temporal subband decomposition of the video information, with motion compensation.

The illustrated 3D wavelet decomposition with motion compensation is applied to a group of frames (GOF), referenced F1 to F8. In this 3D subband decomposition scheme, each GOF of the input video is first motion-compensated (MC) in order to process sequences with large motion, and then temporally filtered (TF) using Haar wavelets. The dotted arrows correspond to a high-pass temporal filtering, while the other ones correspond to a low-pass temporal filtering, and three stages of decomposition are shown (L and H=first stage ; LL and LH=second stage ; LLL and LLH=third stage).

However, when performing a pel-recursive motion estimation on the coefficients of each subband, the lack of translation invariance must be taken into account. The major problem with a dyadic subband decomposition (see FIG. 2, showing such a decomposition, performed for three layers and leading to ten subbands LH1, HL1 and HH1 in the lowest layer, LH2, HL2 and HH2 in the middle layer, and M3, LH3, HL3 and HH3 in the highest layer; and FIG. 3, depicting a bank filter that allows to obtain this decomposition from an input signal f[n], giving output signals L1[n], L2[n], L3[n], H1[n], H2[n] and H3[n]) is indeed the fact that the subsampling operation (31, 32, 33, 34, 35, 36) applied after each filtering operation (21, 22, 23, 24, 25, 26) does not preserve the translation invariance (while the redundant wavelet transform of a signal is a time invariant representation, on the contrary the non redundant wavelet decomposition lacks this property). An example is given in FIGS. 4 and 5, where the samples in the high and low filtering branches, at the outputs of the low-pass and high-pass filters (L(z) and H(z)) and the subsamplers (™2), are shown respectively in the case of a first position of the edge of a moving object (original signal ORS) and in the case of a shifted input (shifted input SHF) corresponding to another position of said edge. The obtained signal is shown just after each filter and each subsampler. Each subsampling operation has to keep either the even or the odd samples : a moving edge has resulted in a high frequency coefficient HFC in the first case (FIG. 4, high filtering branch), while said edge is no longer detectable in the second one (FIG. 5). Consequently, one cannot deduce motion from subsampled subband coefficients. The motion prediction must be performed from unsampled subbands.

For a 1D signal, a subsampling operation yields two possible choices: either odd or even samples can be taken. For a 2D signal (such as an image), this operation yields four possible decompositions. Therefore, if a signal frame is decomposed upon three levels, 64 possible decompositions, equivalent in terms of quantity of information, can be obtained. However, as previously mentioned, a motion estimation cannot be performed on them, because they are not redundant. It is then observed from FIG. 6 (illustrating the identity between the two representations (L(z²)+™2) and (™2+L(z) shown in that figure) that redundant decompositions exist for each level of analysis. The introduction of the equivalence of FIG. 6 in the low filtering branch (21, 31, 22, 32, 23, 33) of FIG. 3 (repeated in the upper part of FIG. 7) leads to the equivalent scheme of the lower part of said FIG. 7: now, before the final subsampling operation, a redundant subband whose size is the same as that of the original image is obtained, and a valid motion estimation can be performed on it (the redundant subbands RSB1, RSB2, RSB3 at the three levels 1, 2, 3 have been shown in FIG. 7).

The wavelet decomposition itself is performed using the so-called lifting scheme, depicted for instance in FIG. 8, in the case of the signal decomposition leading to outputs c[n] and d[n], and FIG. 9, in the case of the signal reconstruction from said signals c[n] and d[n] (this implementation has been chosen because of the flexibility for the choice of the prediction filters P and update filters U, but it is obviously not the only one possible). For each filter pass, either odd or even samples (x₁[n], x₀[n] respectively) can be taken first, as it can be seen in FIGS. 8 and 9:

−even samples first ?: x₀[n]=f[2n] x₁[n]=f[2n+1]}n≧0 −odd samples first ?: x₀[n]=f[2n+1] x₁[n]=f[2(n+1)]}n≧0

FIGS. 10 to 12 then show the “classical” wavelet decomposition obtained by applying the identities of FIGS. 6 and 7 to each filter bank of FIG. 3: one can see that stopping just before the decimation at each level (FIG. 10, 11 or 12) yields the redundant subband.

The problem is that lifting wavelets inherently use decimation before filtering. In FIG. 8, where the input signals for the lifting bank are x₀[n]=f[2n].x₁[n]=f[2n+1] or x₀[n]=f[2n+1].x₁[n]=f[2(n+1)], these inputs are decimated with respect to the original signal f[n]. Thus the decimation step cannot be skipped during the decomposition, and the redundant subbands can be obtained in another way, now described.

It has been seen, in relation with FIGS. 8 and 9, that for each level of decomposition and for each dimension, it is possible to choose even or odd samples first. If for instance the even choice is represented by 0 and the odd one by 1, a full decomposition on three levels is then characterized by six bits, as shown in the example of FIG. 13 which can be seen as the binary decomposition of the number of the decomposition basis : 0,0,1,0,0,1→ basis number 9. As a result, there are 64 possible subsampling choices corresponding to the 64 possible decomposition bases (as illustrated in FIG. 14).

The critically subsampled subbands are then used to construct the redundant subband. The number of the decomposition basis yields the position where the subband will be placed on a rectangular grid. For example, if the bits describing x are 0 1 0 (3^(rd) level, 2^(nd) level, 1^(st) level), they yield the number 2, which is the reconstruction offset showing where the first sample of the subband has to be placed in the redundant subband, following the x direction. The same operation is applied in the y direction, and the samples are then placed at intervals of length:interval=2^(decomposition level). Knowing the offset and the interval for each subsampled subband, it is possible to interleave them in order to reconstruct the redundant subband, as shown in FIG. 15. This redundant subband has the same size as the original image. At the first level of decomposition, each of the redundant subbands HL, LH and HH is obtained by interleaving four subsampled subbands. At level 2, they are obtained by interleaving 16 subsampled subbands, and at level 3, one has to interleave 64 subsampled subbands to obtain the redundant one (see FIG. 14). Eventually, the redundant decomposition yields ten redundant subbands, as illustrated in FIG. 16.

The pel-recursive motion estimation will be now described. In what follows, bold characters for vectors (d), ∇ for the gradient, and (.)^(T) for transposition will be used. The following algorithm is meant to compute the Optic Flow between two matrices A and B, which can be two successive frames of a sequence, or (as considered in the present case) two successive subbands. The aim is to estimate for each pixel m=(m,n), the motion vector d(m): B(m)=A(m−d)   (1)

To perform a recursive description of d, it has to be assumed that d is smoothly distributed over the image plane. Basically the method described here is:for each reference pixel in B, the gradient in A is computed at the estimated position (m−d) in order to find a pixel in A that is closer to the reference pixel. This yields a new position m−d. If it is the same position, the algorithm stops, else it iterates once more. Thus the algorithm converges and stops when it has reached the right position.

The iterative procedure is composed of the following steps, including the initialization, the computation of an update vector, the update of the motion vector, and a break test:

-   -   (1) The iterative procedure is initialized by the mean value of         the motion vector in a causal neighbourhood S, $\begin{matrix}         {{d_{0}(m)} = {\frac{1}{{Card}(S)}{\sum\limits_{j \in S}{d\left( {m - j} \right)}}}} & (2)         \end{matrix}$         considering that a typical neighbourhood of four pixels can be         used (the motion vectors are supposed to be zero out of the         image boundaries):

-   * J₁ j₂ j₃ *

-   * j₀ m * *

-   * * * * *     -   (2) The second step is the determination, at each iteration i,         of an update vector u_(i): $\begin{matrix}         {u_{i} = {{- \frac{E(m)}{{{\nabla A}}^{2} + \lambda}}{\nabla A}}} & (3) \\         {{where}\text{:}} & \quad \\         {{\nabla A} = \begin{pmatrix}         \frac{\partial{A\left( {m - d_{i}} \right)}}{\partial m} \\         \frac{\partial{A\left( {m - d_{i}} \right)}}{\partial n}         \end{pmatrix}} & (4)         \end{matrix}$         is the gradient of the image at point m−d_(i),         E(m)=B(m)−A(m−d _(i))   (5)         is the prediction error at the current iteration, and λ is a         regularization parameter.     -   (3) In the third step, d_(i) is updated:         d _(i+1) =d _(i) +u _(i)   (6)     -   (4) The break test ends the procedure if d_(i) is close enough         to d. This test can be for instance based on the estimation of         the ratio: $\begin{matrix}         {R = \frac{{u_{i}}^{2}}{{d_{i}}^{2}}} & (7)         \end{matrix}$         which has to be superior to ε (ε can be turned to balance the         vector determination precision and the computational load). A         supplementary condition may be put on the maximum number of         iterations.

The second step (update vector computation, described by the relation (3)) can be detailed. The first order approximation of the relation (1) reads: B(m)=A(m−d _(i))−δd ^(T) . ∇A   (8) where ∇A is the gradient from the relation (4) and a δ=31 d_(i)

One has to minimize the square error (the term λ||δd||² will be explained later): $\begin{matrix} {\min_{\delta\quad d}\left( \quad\underset{\underset{J}{︸}}{\left. {\left( {{\beta(m)} - {A\left( {m - d_{i}} \right)} + {\delta\quad{d^{T} \cdot {\nabla A}}}} \right)^{2} + {\lambda{{\delta\quad d}}^{2}}} \right)} \right.} & (9) \end{matrix}$

The minimum is obtained when: ${\frac{\partial J}{{\partial\delta}\quad d} = 0},$ i.e. when: (B(m)−A(m−d _(i))+δd ^(T) .∇A).∇A+λδd=0   (10)

As δd^(T).∇A is the inner product of vectors δd and ∇A, one has: δd^(T).∇A=∇A^(T). δd and the relation (10) becomes: (∇A.∇ ^(T) +λI).δd=−E(m).∇A   (11)

The utility of λ can now be seen: the matrix ∇A∇A^(T) is not invertible (rank 1), but ∇A∇A^(T)+λI can be inverted using the following lemma: $\left( {M + {u\quad u^{T}}} \right)^{- 1} = {M^{- 1} - \frac{M^{- 1}u\quad u^{T}M^{- 1}}{1 + {u^{T}M^{- 1}u}}}$ which yields here for u=∇A and M=λI: $\begin{matrix} \left( {\left( {{{\nabla A}{\nabla A^{T}}} + {\lambda\quad I}} \right)^{- 1} = \frac{\nabla A}{\lambda + {{\nabla A}}^{2}}} \right. & (12) \end{matrix}$ and finally leads to: $\begin{matrix} {{\delta\quad d} = {{- \frac{E(m)}{\lambda + {{\nabla A}}^{2}}}{\nabla A}}} & (13) \end{matrix}$

This is the update vector u_(i) used in the relations (3) and (6). This regularization provides a trade-off between the smoothness of the resulting motion vector field (for large λ) and the accuracy of the motion vectors (for small λ).

It has been seen, in the relation (11), that ∇A has to be computed. The gradient computation can be approximated by a discrete filtering of the image. To perform a discrete approximation of the gradient by linear filtering, the filters must satisfy some conditions that will be now reminded. Assuming that h is a FIR filter, and considering the rectangular sampling of a continuous field F(x,y), one has: F[n, m]=F(nL₁, nL₂). The gradient of the image following the x direction is: $\begin{matrix} \begin{matrix} {{{L_{1} \cdot \frac{\partial F}{\partial x}}\left( {{n\quad L_{1}},{n\quad L_{2}}} \right)} = {h_{n,m}*{F\left\lbrack {n,m} \right\rbrack}}} \\ {{= {\sum\limits_{{({k,l})} \in S}{h_{k,l} \cdot {F\left\lbrack {{n - k},{m - l}} \right\rbrack}}}},} \end{matrix} & (14) \end{matrix}$

S being considered as a close neighbourhood of 9 pixels (the center pixel m and the eight pixels around). On the other hand, at first order, one has: $\begin{matrix} \begin{matrix} {{F\left\lbrack {{n - k},{m - l}} \right\rbrack} \approx {{F\left\lbrack {n,m} \right\rbrack} - {k\quad{L_{1} \cdot \frac{\partial F}{\partial x}}\left( {{n\quad L_{1}},{n\quad L_{2}}} \right)} -}} \\ {l\quad{L_{2} \cdot \frac{\partial F}{\partial y}}\left( {{n\quad L_{1}},{n\quad L_{2}}} \right)} \end{matrix} & (15) \end{matrix}$ and combining the relations (14) and (15) yields: $\begin{matrix} \begin{matrix} {{{L_{1} \cdot \frac{\partial F}{\partial x}}\left( {{n\quad L_{1}},{n\quad L_{2}}} \right)} = {{\sum\limits_{{({k,l})} \in S}{h_{k,l} \cdot {F\left\lbrack {n,m} \right\rbrack}}} -}} \\ {{L_{1}{\sum\limits_{{({k,l})} \in S}{k\quad h_{k,l}{L_{1} \cdot \frac{\partial F}{\partial x}}\left( {{n\quad L_{1}},{n\quad L_{2}}} \right)}}} -} \\ {L_{2}{\sum\limits_{{({k,l})} \in S}{l\quad h_{k,l}{L_{1} \cdot \frac{\partial F}{\partial y}}\left( {{n\quad L_{1}},{n\quad L_{2}}} \right)}}} \end{matrix} & (16) \end{matrix}$

Identifying the members of the relation (16) then yields three constraints for h: $\begin{matrix} {{\sum\limits_{{({k,l})} \in S}h_{k,l}} = 0} \\ {{\sum\limits_{{({k,l})} \in S}{k\quad h_{k,l}}} = {- 1}} \\ {{\sum\limits_{{({k,l})} \in S}{l\quad h_{k,l}}} = 0} \end{matrix}$

The chosen filters, which satisfy these conditions, are the following:

-   (a) x-dimension gradient filter:     -   −⅛ 0 ⅛     -   −¼ 0 ¼     -   −⅛ 0 ⅛ -   (b) y-dimension gradient filter:     -   −⅛−¼−⅛     -   0 0 0     -   ⅛ ¼ ⅛         which yields a good approximation of the discrete gradient.

Different improvements can be proposed for the implementation of the algorithm described above, especially in terms of accuracy of motion vector and speed. The speed of the algorithm can be increased by making it more rapidly convergent. The initialization step is thus crucial for the convergence speed. A good initialization has to take into account as much as possible the previously computed motion vectors. However, the assumption about the smoothness of the distribution of the motion vectors over the image plane can be untrue (for certain types of motions, for instance when objects in the plane are moving in different directions) at the boundaries of the objects. The algorithm has to be able to detect this event, and to correct the initialization by breaking the smoothness of the motion vector field. It is possible to introduce a break test at the end of the initialization step (and even after each update of the motion vector). One has to compute two test values: E ₀(m)=|B _(j,s)(m)−A _(j,s)(fm)| E _(j,s)(m)=|B _(j,s)(m)−A _(j,s)(fm−fd _(i))|, where E₀ is the error without motion (d_(i)=0), and E_(j,s) is the error when the computed motion vector is taken into account. The principle is that if E_(j,s) is greater than E₀, the motion vector has to be reinitialized to zero. However, too frequent reinitializations will prevent the algorithm from converging. When the prediction error is very small, this case could appear quite often. That is why a tolerance in this test is introduced, which is defined through inequality: E _(j,s) >E ₀ +THR   (17) where THR is a threshold, to be determined according to the value of the subband coefficients.

Another improvement relates to the scanning order. The image being a table, it is scanned from the first item (i.e. m=(0,0)) to the last one (m=xmax, ymax), as shown in FIG. 17. This initialization order, combined with the initialization neighbourhood, yields a bad motion estimation in the lower left corner of the image (since, for the first column of the image, the initialization neighbourhood is only reduced to the pixel above). The method is then not robust and leads to an error drift. The scanning order presented in FIG. 18 yields better results. The image is scanned, the even lines from the left to the right, and the odd lines from the right to the left. This allows an improved causality in the initialization. Indeed, every pixel depends on all the previously scanned pixels. The error drift observed in the lower left corner of the image does not exist with this method. A better initialization makes possible for the algorithm to converge faster. The error drift was due to the fact that the number of iterations is limited: if the initialization is not good, the algorithm has not enough iterations to converge to the right motion vector. Given this new scanning order, the initialization neighbourhood has to be changed. For the first line, the neighbourhood is reduced to the previous pixel:

* j₀ m *

For the even lines, the neighbourhood remains unchanged:

-   -   * J₁ j₂ j₃ *     -   * j₀ m * *     -   * * * * *

A third improvement relates to the approximation subband SB A_(jmax,0) of the image, which has, by definition, very few details. Thus a pel-recursive motion estimation is sometimes not accurate enough. Small errors in the compensated approximation yield bad results for the image reconstructed from the compensated subbands. Better results are obtained if a full search is performed for each pixel of B_(jmax,0) in a window of A_(jmax,0), but this method is not as fast as the pel-recursive algorithm. The size of the search window is: (2.(2^(jmax))+1) by (2.(2^(jmax))+1) as shown in FIG. 19. SB(3,0) being well estimated, it is possible to use its motion vector to initialize the other subband SB. If one calls d_(approximation) the motion vector in SB(3,0) at pixel m(m,n), and d₀ the initialization vector taking into account only spatial neighbours, a new initialization vector can be computed through: D ₀ =α.d _(approximation)+(1−α).d ₀,   (18) where α is a constant that allows to control the influence of d_(approximation) in the initialization. If α=0, d_(approximation) has no influence at all. The same principle can be used for the other subbands SB. It is then possible to use the previously computed motion vector, at a higher level of decomposition j, in order to initialize the algorithm. If one calls d_(j+1) the motion vector estimated at level j+1, the new initialization vector is: D₀=α.d_(j+1)+(1−α).d₀. The generic algorithm described above can be applied between two subbands. However, if it is used, the correlation that exists between the subbands of a same level of decomposition is not taken into account: the computed motion vector should be the same for each pixel in the three subbands (or four when LL-subband is taken into account). It is then possible to decide to estimate, for a given level of decomposition jε{1,2, . . . jmax}, for each pixel m=(m,n), the motion vector d_(j) (m): B _(j,s)(m)=A _(js)(m−d _(j)) for sε{0, . . . 4}  (19) where:

-   -   .A_(0,0) represents the first image,     -   .B_(0,0) represents the second image,     -   .A_(j,s) represents the subband number s at the j-th         decomposition level of the frame A:     -   the subband 0 represents the approximation subband (SB),     -   the subband 1 represents the horizontal detail SB,     -   the subband 2 represents the vertical detail SB,     -   the subband 3 represents the diagonal detail SB.

The assumption of d being smoothly distributed over the subband planes has to be made just as previously.

As previously, the iterative procedure, carried out for each level of decomposition j ε{1, 2, . . . jmax}, comprises four steps including the initialization, the computation of an update vector, the update of the motion vector and a break test, but with some slight modifications:

The iterative procedure is initialized by the mean value of the motion vector in a causal neighbourhood S, $\begin{matrix} {{d_{j,o}(m)} = {\frac{1}{{Card}(S)}{\sum\limits_{k \in S}{d_{j}\left( {m - k} \right)}}}} & (20) \end{matrix}$ with for example a typical neighbourhood of 4 pixels (the motion vectors are supposed to be zero out of the image boundaries):

-   -   * k₁k₂k₃*     -   * k₀m * *     -   * * * * *

-   2. Then an update vector u_(j,i) is determined: $\begin{matrix}     {u_{j,i} = {\left( {{\sum\limits_{{s = 0},1}^{3}\left( {{\nabla A_{j,s}}{\nabla A_{j,s}^{T}}} \right)} + {\lambda\quad I}} \right)^{- 1}\quad\left( {- {\sum\limits_{{s = 0},1}^{3}{{E_{j,s}(m)}{\nabla A_{j,s}}}}} \right)}} & (21) \\     {{where}\text{:}} & \quad \\     {{\nabla A_{j,s}} = \begin{pmatrix}     \frac{\partial{A_{j,s}\left( {m - d_{j,i}} \right)}}{\partial m} \\     \frac{\partial{A_{j,s}\left( {m - d_{j,i}} \right)}}{\partial n}     \end{pmatrix}} & (22)     \end{matrix}$     is the gradient of the image at point m−d_(j,i) and:     E _(j,s)(m)=B _(j,s)(m)−A _(j,s)(m−d _(j,i))   (23)     s varying from 1 to 3 or from 0 to 3, depending on the number of     subbands that have to be taken into account (4 for the deeper     decomposition level, 3 for the others).

-   3. Then the motion vector d_(j,i+1) is updated:     d _(j,i+1) =d _(j,i+) u _(j,i)   (24)

-   4. The break test ends the procedure if d_(i,j) is close enough to     d_(j), this test being for example the estimation of the ratio:     $\begin{matrix}     {R_{j,i} = \frac{{u_{j,i}}^{2}}{{d_{j,i}}^{2}}} & (25)     \end{matrix}$     which has to be superior than ε (ε to be determined). An additional     condition is put on the maximum number of iterations.

For the update vector computation, at the first order, the relation (1) becomes, for every s: B _(j,s)(m)=A _(j,s)(m−d _(j,s))−δd _(j) ^(T) ∇A _(j,s)   (26) where ∇A_(j,s) is the gradient from Eq. (4) and δd_(j)=d_(j)−d_(j,j).

As it is wanted to minimize the square error on all the subbands at the same time: $\begin{matrix} {\min_{\delta_{dj}}\left( \underset{\underset{Ji}{︸}}{{\sum\limits_{{s = 0},1}^{3}\quad\left( {{B_{j,s}(m)} - {A_{j,s}\left( {m - d_{j,i}} \right)} + {\delta_{j}^{T}{\nabla A_{j,s}}}} \right)^{2}} + {\lambda{{\delta\quad d_{j}}}^{2}}} \right)} & (27) \end{matrix}$ the minimum is obtained when: $\begin{matrix} \begin{matrix} {\frac{\partial J_{i}}{{\partial\delta}\quad d_{j}} = 0} \\ {i.e.\text{:}} \\ {{\sum\limits_{{s = 0},1}^{3}\quad\left( {{\left( {{B_{j,s}(m)} - {A_{j,s}\left( {m - d_{j,i}} \right)} + {\delta\quad d_{j}^{T}{\nabla A_{j,s}}}} \right){\nabla A_{j,s}}} + {\lambda\quad{\partial d_{j}}}} \right)} = 0} \end{matrix} & (28) \end{matrix}$

The relation (28) then becomes: $\begin{matrix} {{{\left( {{\sum\limits_{{s = 0},1}^{3}\quad\left( {{\nabla A_{j,s}}{\nabla A_{j,s}^{T}}} \right)} + {\lambda\quad I}} \right) \cdot \delta}\quad d_{j}} = {{- {E_{j,s}(m)}} \cdot {\nabla A_{j,s}}}} & (29) \end{matrix}$

Even without regularization, the matrix $\left. {{\sum\limits_{{s = 0},1}^{3}\quad{{\nabla A_{j,s}}{\nabla A_{j,s}^{T}}}} + {\lambda\quad I}} \right)$ can be invertible. It is a 2 by 2 matrix, and the inverted matrix can be computed explicitely. In this case, the regularization term λI is required only for the control of the motion vector field coherency.

In case this pel-recursive motion estimation algorithm should be applied to the redundant subband, the previous algorithm must be adapted. Let f be the scale factor caracterizing the ratio between the size of the redundant subband and the size of the subsampled subband: f=2^(j) where j is the decomposition level.

It is known that a redundant subband presents the lack translation invaxiance. As a result, the pel-recursive motion estimation can be performed between a redundant subband (reference frame) and a subsampled subband (current frame). The motion vectors are then (assuming that even samples have been retained for the subsampled decomposition of B_(j,s)) defined through: B _(j,s)(m)=A _(j,s)(fm−fd _(j))   (30)

The iterative procedure is then slightly different:

-   -   1. d₀(m) is initialized through the relation (20).     -   2. The update vector u_(i) remains unchanged, with the new         error:         E _(j,s)(m)=B _(j,s)(m)−A _(j,s)(fm−fd _(i))   (31)         and the new gradient: $\begin{matrix}         {{\nabla A_{j,s}} = {\frac{1}{f}\begin{pmatrix}         \frac{\partial{A_{j,s}\left( {{fm} - {fd}_{j,i}} \right)}}{\partial m} \\         \frac{\partial{A_{j,s}\left( {{fm} - {fd}_{j,i}} \right)}}{\partial n}         \end{pmatrix}}} & (32)         \end{matrix}$     -   3. The update equation is unchanged.     -   4.The break test remains unchanged. 

1. A video coding method based on a subband coding scheme applied to a sequence of two-dimensional frames, said method comprising a subband decomposition step of a current frame (F2), a motion prediction step, carried out with respect to a previous or reference frame (F1), and a coding step, said method being moreover characterized in that said motion prediction step is based on a redundant decomposition of the reference frame, according to the following procedure: (1) in the approximation subband of said decomposition, the motion is estimated by means of a full search operation involving said reference frame and applied to each picture element (pixel) of the current frame; (2) for the other subbands, the motion is estimated by means of a pixel (or pel) recursive motion estimation algorithm using for the prediction the reference redundant subband reconstructed from the subsampled subbands yielded by said subband decomposition.
 2. A coding method according to claim 1, in which said pel-recursive motion estimation algorithm, intended to compute the optic flow between two matrices A and B representing two successive subbands i.e. to estimate for each pixel m its motion vector d(m) in such a manner that B(m)=A(m−d), itself comprises the following sub-steps: (a) an initialization sub-step, the iterative algorithm being initialized with the mean value d₀ (m) of the motion vector in a causal neighbourhood S: ${d_{0}(m)} = {\frac{1}{{Card}(S)}{\sum\limits_{j \in S}^{\quad}\quad{d\left( {m - j} \right)}}}$ the following notations being used m=pixel for which the motion has to be estimated; d(m)=its motion vector; (b) an updating sub-step, for updating d_(i) according to the relation: d_(i+1)=d_(i)+u_(i), where u_(i), determined at each iteration i, is an update vector given by: $u_{i} = {{- \frac{E(m)}{{{\nabla A}}^{2} + \lambda}} \cdot {\nabla A}}$ where ∇A is the gradient of the image at the point m−d_(i), E(m)=B(m)−A(m−d_(i)) is the prediction error at the current iteration, and λ is a regularization parameter; (c) a decision sub-step, for carrying a break test and thus ending the procedure if d_(i) is close enough to d.
 3. A coding method according to claim 2, in which a typical neighbourhood of four pixels is used.
 4. A coding method according to claim 2, in which said break test is based on the estimation of the following ratio: $R = \frac{{u_{i}}^{2}}{{d_{i}}^{2}}$ said ratio having to be greater than a given threshold ε.
 5. A coding method according to claim 4, in which said threshold ε is turned to balance the vector determination precision and the computational load.
 6. A coding method according to claim 4, in which said break test includes an additional condition put on a maximum number of iterations.
 7. A coding method according to claim 4, in which the determination of said update vector u_(i) is based on a computation step including the following minimizing operation: knowing that B(m)=A(m−d_(i))−δd^(T).∇A where δd^(T).∇A is the inner product of ∇A and vector δd=d−d_(i), to minimize the square error J: J=((B(m)−A(m−d _(i))+δd ^(T) .∇A)² +λ||δd|| ² with respect to δd, the term λ||δd||² being a regularization term provided in view of a trade-off between the smoothness of the resulting motion vector field, for large values of λ, and the accuracy of the motion vectors, for small values of λ, the minimum being obtained for ∂J/∂δd=0 and leading to the update vector: ${\delta\quad d} = {u_{i} = {{- \frac{E(m)}{{{\nabla A}}^{2} + \lambda}} \cdot {\nabla A}}}$
 8. A coding method according to claim 7, in which the scanning order is carried out in the following way:even lines from the left to the right, odd lines from the right to the left, the initialization neighbourhood being then also modified for the first line, where it is reduced to the previous pixel, and for the odd lines, where it is inverted to preserve causality
 9. A coding method according to claim 7, in which said motion estimation algorithm is re-initialized by testing a break condition with some tolerance, the prediction error when using the estimated motion vector being, for said test, compared to the prediction error with no motion estimation, plus a threshold.
 10. A coding method according to claim 2, in which the initialization of the motion vector is done with a linear combination of the average over the neighbourhood S and the motion vector obtained from the subband with the same orientation, at the previous decomposition level.
 11. A coding method according to claim 1, in which said pel-recursive motion estimation algorithm, intended to use the correlation that exists between the subbands of a same level of decomposition i.e. to estimate for a given level of decomposition jε{1, 2, . . . , jmax} and for each pixel m its motion vector d_(j)(m) in such a manner that B_(j,s)(m)=A_(j,s)(m−d_(j)) for s={0, . . . , 4}, the two matrices A and B representing two successive subbands, itself comprises the following sub-steps: (a) an initialization sub-step, the iterative algorithm being initialized with the mean value d_(j) (m) of the motion vector in a causal neighbourhood S: ${d_{j,o}(m)} = {\frac{1}{{Card}(S)}{\sum\limits_{j \in S}{d_{j}\left( {m - k} \right)}}}$ the following notations being used: kεs(1 to 4); m=pixel for which the motion has to be estimated; d_(j,o)(m)=its motion vector; (b) an updating sub-step, for updating d_(j,i+1) according to the relation: d_(j, i+1)=d_(j,i)+u_(j,i), where u_(j,i) determined at each iteration i is an update vector given by: $u_{j,i} = {\left( {{\sum\limits_{{s = 0},1}^{3}\left( {{\nabla A_{j,s}}{\nabla A_{j,s}^{T}}} \right)} + {\lambda\quad I}} \right)^{- 1}\left( {- {\sum\limits_{{s = 0},1}^{3}{{E_{j,s}(m)}{\nabla A_{j,s}}}}} \right)}$ where: ${\nabla A_{j,s}} = \begin{pmatrix} \frac{\partial{A_{j,s}\left( {m - d_{j,i}} \right)}}{\partial m} \\ \frac{\partial{A_{j,s}\left( {m - d_{j,i}} \right)}}{\partial n} \end{pmatrix}$ is the gradient of the image at point m−d_(j,i) and: E _(j,s)(m)=B _(j,s)(m)−A _(j,s)(m−d _(j,i)) (c) a decision sub-step, for carrying a break test and thus ending the procedure if d_(j,i) is close enough to d_(j).
 12. A coding method according to claim 11, in which a typical neighbourhood of four pixels is used.
 13. A coding method according to claim 11, in which said break test is based on the estimation of the following ratio: $R_{i,j} = \frac{{u_{j,i}}^{2}}{{d_{j,i}}^{2}}$ said ratio having to be greater than a given threshold ε.
 14. A coding method according to claim 13, in which said break test includes an additional condition put on a maximum number of iterations.
 15. A coding method according to claim 13, in which the determination of said update vector u_(i) is based on a computation step including the following minimizing operation: knowing that B_(j,s)=A_(j,s)(m−d_(j,i))−δd_(j) ^(T).∇A_(j,s) where δd^(T).∇A is the inner product of ∇A_(j,s) and the vector δd_(j)=d_(j)−d_(j,i), to minimize the square error: $\begin{matrix} {\min_{\delta_{dj}}\left( \underset{\underset{Ji}{︸}}{{\sum\limits_{{s = 0},1}^{3}\left( {{B_{j,s}(m)} - {A_{j,s}\left( {m - d_{j,i}} \right)} + {\delta_{j}^{T}{\nabla A_{j,s}}}} \right)^{2}} + {\lambda{{\delta\quad d_{j}}}^{2}}} \right)} & (27) \end{matrix}$ with respect to δd_(j), the term λ||δd_(j)||² being a regularization term provided in view of a trade-off between the smoothness of the resulting motion vector field, for large values of λ, and the accuracy of the motion vectors, for small values of λ, and the minimum being obtained for ∂J_(j)/∂δd_(j)=0. 